package com.zetyun.tiger.connector.op.v3;

import com.fasterxml.jackson.annotation.JsonClassDescription;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import com.zetyun.rt.meta.jsonschema.annotation.JsonSchemaTitle;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.Set;

@Getter
@Setter
@ToString
@JsonClassDescription("Redis V2算子参数类")
public class RedisOpV3Parameter {

    @JsonSchemaTitle("master名称")
    @JsonProperty(defaultValue = "redis-master")
    private String masterName;

    @JsonSchemaTitle("sentinel地址")
    @JsonProperty(defaultValue = "rdx1:26379")
    private Set<String> sentinels;

    @JsonSchemaTitle("密码")
    @JsonProperty(defaultValue = "Redis6379")
    private String password;

    @JsonSchemaTitle("公共揽存客户号账号关系数据库")
    @JsonProperty(defaultValue = "4")
    private Integer pbRelationshipDb;

    @JsonSchemaTitle("客户经理客户号账号关系数据库")
    @JsonProperty(defaultValue = "5")
    private Integer conntrRelationshipDb;

    @JsonSchemaTitle("实时客户数统计数据库")
    @JsonProperty(defaultValue = "8")
    private Integer rtDb;

    @JsonSchemaTitle("日期")
    @JsonProperty(defaultValue = "CB_EVENT_DATE")
    private String dayId;

    @JsonSchemaTitle("开户机构号")
    @JsonProperty(defaultValue = "CB_OPAC_INSTN_NO")
    private String opacInstnNo;

    @JsonSchemaTitle("客户经理所属机构号")
    @JsonProperty(defaultValue = "CB_PA_OPUN_COD")
    private String paOpunCod;

    @JsonSchemaTitle("客户经理号")
    @JsonProperty(defaultValue = "CB_CONNTR_NO")
    private String conntrNo;

    @JsonSchemaTitle("客户号")
    @JsonProperty(defaultValue = "CB_CUST_NO")
    private String custNo;

    @JsonSchemaTitle("内部账号")
    @JsonProperty(defaultValue = "CB_ACCT_NO")
    private String acctNo;

    @JsonSchemaTitle("开销户标识")
    @JsonProperty(defaultValue = "CB_OPAC_TYP")
    private String opacType;

    @JsonSchemaTitle("公共揽存客户关系缓存前缀")
    @JsonPropertyDescription("归属于 公共揽存客户号账号关系数据库 默认为 4 号数据库")
    @JsonProperty(defaultValue = "DIM:HIS:ORG:")
    private String pbRelationshipPrefix;

    @JsonSchemaTitle("公共揽存今日客户数")
    @JsonProperty(defaultValue = "DIM:RT:ORG:PD:CNT:")
    private String pbCntPrefix;


    @JsonSchemaTitle("客户经理客户关系缓存前缀")
    @JsonProperty(defaultValue = "DIM:HIS:CONNTR:")
    @JsonPropertyDescription("归属于 客户经理客户号账号关系数据库 默认为 5 号数据库")
    private String conntrRelationshipPrefix;


    @JsonSchemaTitle("客户经理今日客户数缓存")
    @JsonProperty(defaultValue = "DIM:RT:CONNTR:CNT:")
    private String conntrCntPrefix;


//    @JsonSchemaTitle("机构今日客户数缓存")
//    @JsonProperty(defaultValue = "DIM:RT:PEMS:ORG:CNT:")
//    @JsonPropertyDescription("机构下所有客户经理的客户数与机构公共揽存的客户数之和")
//    private String orgCntPrefix;


    @JsonSchemaTitle("公共揽存今日客户数字段")
    @JsonProperty(defaultValue = "CB_RT_ORG_PD_CNT")
    private String cbOrgPdCnt;

    @JsonSchemaTitle("客户经理今日客户数字段")
    @JsonProperty(defaultValue = "CB_RT_CONNTR_CNT")
    private String cbConntrCnt;

    @JsonSchemaTitle("机构今日客户数字段")
    @JsonProperty(defaultValue = "CB_RT_ORG_CNT")
    private String cbOrgCnt;


    @JsonSchemaTitle("叶子机构今日开户客户号缓存")
    @JsonProperty(defaultValue = "ADS:ORG:CUST:OPAC:")
    @JsonPropertyDescription("格式默认为 ADS:ORG:CUST:OPAC:{day_id}:{orgNo} 默认为 8 号数据库")
    private String orgOpacCustPrefix;


    @JsonSchemaTitle("叶子机构今日销户客户号缓存")
    @JsonProperty(defaultValue = "ADS:ORG:CUST:CACCT:")
    @JsonPropertyDescription("格式默认为 ADS:ORG:CUST:CACCT:{day_id}:{orgNo} 默认为 8 号数据库")
    private String orgCacctCustPrefix;

}
